package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-入库/出库明细其他信息对象 erp_king_inventory_material_detail_info
 *
 * @author cxl
 * @date 2024-07-13
 */
@TableName ("erp_king_inventory_material_detail_info")
@ApiModel (value = "金蝶-入库/出库明细其他信息", description = "金蝶-入库/出库明细其他信息")
@Data
public class KingInventoryMaterialDetailEntity{

    /** 主键id */
    @TableId (type = IdType.INPUT)
    private String id;

    /** 出入库表id */
    @ApiModelProperty ("出入库表id")
    @TableField ("inventory_id")
    @Excel (name = "出入库表id")
    private String inventoryId;

    /** 出入库明细表id */
    @ApiModelProperty ("出入库明细表id")
    @TableField ("inventory_material_id")
    @Excel (name = "出入库明细表id")
    private String inventoryMaterialId;

    /** 物料id */
    @ApiModelProperty ("物料id")
    @TableField ("material_id")
    @Excel (name = "物料id")
    private String materialId;

    /** 物料编码 */
    @ApiModelProperty ("物料编码")
    @TableField ("material_code")
    @Excel (name = "物料编码")
    private String materialCode;

    /** 物料名称 */
    @ApiModelProperty ("物料名称")
    @TableField ("material_name")
    @Excel (name = "物料名称")
    private String materialName;

    /** BOM版本 */
    @ApiModelProperty ("BOM版本")
    @TableField ("bom_ver")
    @Excel (name = "BOM版本")
    private String bomVer;

    /** 批号 */
    @ApiModelProperty ("批号")
    @TableField ("batch_num")
    @Excel (name = "批号")
    private String batchNum;

    /** 供应商批号 */
    @ApiModelProperty ("供应商批号")
    @TableField ("supplier_batch_num")
    @Excel (name = "供应商批号")
    private String supplierBatchNum;

    /** 生产日期 */
    @ApiModelProperty ("生产日期")
    @TableField ("manufacture_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date manufactureTime;

    /** 保质期 */
    @ApiModelProperty ("保质期")
    @TableField ("warranty_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "保质期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date warrantyTime;

    /** 保质期单位 */
    @ApiModelProperty ("保质期单位")
    @TableField ("warranty_unit")
    @Excel (name = "保质期单位")
    private String warrantyUnit;

    /** 有效期至 */
    @ApiModelProperty ("有效期至")
    @TableField ("valid_to")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validTo;

    /** 在架寿命期 */
    @ApiModelProperty ("在架寿命期")
    @TableField ("shelf_life_cycle")
    @Excel (name = "在架寿命期")
    private String shelfLifeCycle;

    /** 辅单位 */
    @ApiModelProperty ("辅单位")
    @TableField ("auxiliary_unit")
    @Excel (name = "辅单位")
    private String auxiliaryUnit;

    /** 实收数量 */
    @ApiModelProperty ("实收数量")
    @TableField ("received_num")
    @Excel (name = "实收数量")
    private String receivedNum;

    /** 备注 */
    @ApiModelProperty ("备注")
    @TableField ("remark")
    @Excel (name = "备注")
    private String remark;

    /** 税率 */
    @ApiModelProperty ("税率")
    @TableField ("tax_rate")
    @Excel (name = "税率")
    private String taxRate;

    /** 单价 */
    @ApiModelProperty ("单价")
    @TableField ("price")
    @Excel (name = "单价")
    private String price;

    /** 含税单价 */
    @ApiModelProperty ("含税单价")
    @TableField ("contains_tax_price")
    @Excel (name = "含税单价")
    private String containsTaxPrice;

    /** 折扣率 */
    @ApiModelProperty ("折扣率")
    @TableField ("discount_rate")
    @Excel (name = "折扣率")
    private String discountRate;

    /** 净价 */
    @ApiModelProperty ("净价")
    @TableField ("net_amount")
    @Excel (name = "净价")
    private String netAmount;

    /** 单价折扣 */
    @ApiModelProperty ("单价折扣")
    @TableField ("price_discount")
    @Excel (name = "单价折扣")
    private String priceDiscount;

    /** 折扣额 */
    @ApiModelProperty ("折扣额")
    @TableField ("discount_amount")
    @Excel (name = "折扣额")
    private String discountAmount;

    /** 税额 */
    @ApiModelProperty ("税额")
    @TableField ("tax_amount")
    @Excel (name = "税额")
    private String taxAmount;

    /** 金额 */
    @ApiModelProperty ("金额")
    @TableField ("amount_money")
    @Excel (name = "金额")
    private String amountMoney;

    /** 价税合计 */
    @ApiModelProperty ("价税合计")
    @TableField ("total_tax_price")
    @Excel (name = "价税合计")
    private String totalTaxPrice;

    /** 税额(本位币) */
    @ApiModelProperty ("税额(本位币)")
    @TableField ("tax_amount_base")
    @Excel (name = "税额(本位币)")
    private String taxAmountBase;

    /** 金额（本位币） */
    @TableField ("amount_money_base")
    @ApiModelProperty ("金额（本位币）")
    @Excel (name = "金额（本位币）")
    private String amountMoneyBase;

    /** 价税合计(本位币) */
    @ApiModelProperty ("价税合计(本位币)")
    @TableField ("total_tax_price_base")
    @Excel (name = "价税合计(本位币)")
    private String totalTaxPriceBase;

    /** 价格系数 */
    @ApiModelProperty ("价格系数")
    @TableField ("price_coefficient")
    @Excel (name = "价格系数")
    private String priceCoefficient;

    /** 计价单位 */
    @ApiModelProperty ("计价单位")
    @TableField ("pricing_unit")
    @Excel (name = "计价单位")
    private String pricingUnit;

    /** 计价数量 */
    @ApiModelProperty ("计价数量")
    @TableField ("pricing_num")
    @Excel (name = "计价数量")
    private String pricingNum;

    /** 价格上限 */
    @ApiModelProperty ("价格上限")
    @TableField ("price_cap")
    @Excel (name = "价格上限")
    private String priceCap;

    /** 价格下限 */
    @ApiModelProperty ("价格下限")
    @TableField ("price_floor")
    @Excel (name = "价格下限")
    private String priceFloor;

    /** 分录价目表 */
    @ApiModelProperty ("分录价目表")
    @TableField ("entry_price_list")
    @Excel (name = "分录价目表")
    private String entryPriceList;

    /** 需求跟踪号 */
    @ApiModelProperty ("需求跟踪号")
    @TableField ("require_tracking_code")
    @Excel (name = "需求跟踪号")
    private String requireTrackingCode;

    /** 计划跟踪号 */
    @ApiModelProperty ("计划跟踪号")
    @TableField ("plan_tracking_code")
    @Excel (name = "计划跟踪号")
    private String planTrackingCode;

    /** 源单类型 */
    @ApiModelProperty ("源单类型")
    @TableField ("source_doc_type")
    @Excel (name = "源单类型")
    private String sourceDocType;

    /** 源单单号 */
    @ApiModelProperty ("源单单号")
    @TableField ("source_doc_code")
    @Excel (name = "源单单号")
    private String sourceDocCode;

    /** 订单单号 */
    @ApiModelProperty ("订单单号")
    @TableField ("order_code")
    @Excel (name = "订单单号")
    private String orderCode;

    /** 样本破坏数量 */
    @ApiModelProperty ("样本破坏数量")
    @TableField ("sample_destruction_num")
    @Excel (name = "样本破坏数量")
    private String sampleDestructionNum;

    /** 退料关联数量 */
    @ApiModelProperty ("退料关联数量")
    @TableField ("return_related_num")
    @Excel (name = "退料关联数量")
    private String returnRelatedNum;

    /** 业务流程 */
    @ApiModelProperty ("业务流程")
    @TableField ("business_process")
    @Excel (name = "业务流程")
    private String businessProcess;

    /** 应付关闭状态 */
    @ApiModelProperty ("应付关闭状态")
    @TableField ("payable_close_status")
    @Excel (name = "应付关闭状态")
    private String payableCloseStatus;

    /** 应付关闭日期 */
    @ApiModelProperty ("应付关闭日期")
    @TableField ("payable_close_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "应付关闭日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payableCloseTime;

    /** 规格型号 */
    @ApiModelProperty ("规格型号")
    @TableField ("material_model")
    @Excel (name = "规格型号")
    private String materialModel;

    /** 序列号单位 */
    @ApiModelProperty ("序列号单位")
    @TableField ("serial_code_unit")
    @Excel (name = "序列号单位")
    private String serialCodeUnit;

    /** 序列号单位数量 */
    @ApiModelProperty ("序列号单位数量")
    @TableField ("serial_code_unit_num")
    @Excel (name = "序列号单位数量")
    private String serialCodeUnitNum;

    /** 序列号上传 */
    @ApiModelProperty ("序列号上传")
    @TableField ("serial_code_upload")
    @Excel (name = "序列号上传")
    private String serialCodeUpload;

    /** 录入人 */
    @ApiModelProperty ("录入人")
    @TableField ("user_id")
    @Excel (name = "录入人")
    private String userId;

    /** 创建时间 */
    @ApiModelProperty ("创建时间")
    @TableField ("create_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    /** 更新时间 */
    @ApiModelProperty ("更新时间")
    @TableField ("change_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date changeTime;

    /** 逻辑删除 */
    @ApiModelProperty ("逻辑删除")
    @TableField ("is_used")
    @Excel (name = "逻辑删除")
    @TableLogic
    private Integer isUsed;

    @ApiModelProperty("物料明细序列号信息")
    @TableField(exist = false)
    private List<KingInventoryMaterialDetailSerialEntity> materialDetailSerials;

}
